#ifndef _PLUGIN_H_
#define _PLUGIN_H_
#include "config.h"
#include <string>
namespace KCore
{
	class PluginManager;
	class _KExport Plugin
	{
	public:
		
		virtual ~Plugin(){}
		virtual const char* getName() const = 0;

		virtual void install(PluginManager* p) = 0;
		virtual void initialise(PluginManager* p) = 0;
		virtual void shutdown(PluginManager* p) = 0;
		virtual void uninstall(PluginManager* p) = 0;
		virtual void* getPtr(const char* name){return 0;} //get subinterface instance
	};
};
#endif

